home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / go / prog / nextgo23.taz / nextgo23 / NeXTGo / patterns.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-02-09  |  6.3 KB  |  347 lines

  1. #include "comment.header"
  2.  
  3. #define EMPTY 0
  4. #define PATNO 24
  5.  
  6. /* pattern x, y coor and attribute */
  7. /* for each pattern coordinate 0,0 must have my piece */
  8. /* att = 0 - empty, 1 - your piece, 2 - my piece, 3 - my next move */
  9. /* 4 - empty on edge, 5 - your piece on edge, 6 - my piece on edge */
  10. /*
  11.   struct patval {int x, y, att;};
  12.   */
  13.  
  14. /* patn - patern */
  15. /* patlen - no. of pieces in pattern */
  16. /* trfno - no. of transformation to match pattern */
  17. /*       8 for normal pattern, 4 for symmetrical pattern */
  18. /* patwt - pattern value */
  19. /*
  20.   struct pattern {
  21.   struct patval patn[MAXPC];
  22.   int patlen, trfno, patwt;
  23.   };
  24.   */
  25. static struct pattern pat[PATNO] = {
  26.   /*
  27.     pattern 0: 232   connect if invaded
  28.     010
  29.     */
  30.   {{{0, 0, 2},
  31.       {0, 1, EMPTY},
  32.       {1, 0, 3},
  33.       {1, 1, 1},
  34.       {2, 0, 2},
  35.       {2, 1, EMPTY}}, 6, 4, 82},
  36.   /*
  37.     pattern 1: 230   connect if invaded
  38.     012
  39.     */
  40.   {{{0, 0, 2},
  41.       {0, 1, EMPTY},
  42.       {1, 0, 3},
  43.       {1, 1, 1},
  44.       {2, 0, EMPTY},
  45.       {2, 1, 2}}, 6, 8, 82},
  46.   /*
  47.     pattern 2: 212   try to attack
  48.     030
  49.     */
  50.   {{{0, 0, 2},
  51.       {0, 1, EMPTY},
  52.       {1, 0, 1},
  53.       {1, 1, 3},
  54.       {2, 0, 2},
  55.       {2, 1, EMPTY}}, 6, 4, 82},
  56.   /*
  57.     pattern 3: 2302   connect if invaded
  58.     0100
  59.     */
  60.   {{{0, 0, 2},
  61.       {0, 1, EMPTY},
  62.       {1, 0, 3},
  63.       {1, 1, 1},
  64.       {2, 0, EMPTY},
  65.       {2, 1, EMPTY},
  66.       {3, 0, 2},
  67.       {3, 1, EMPTY}},8, 8, 83},
  68.   /*
  69.     pattern 4: 20302   connect if invaded
  70.     00100
  71.     */
  72.   {{{0, 0, 2},
  73.       {0, 1, EMPTY},
  74.       {1, 0, EMPTY},
  75.       {1, 1, EMPTY},
  76.       {2, 0, 3},
  77.       {2, 1, 1},
  78.       {3, 0, EMPTY},
  79.       {3, 1, EMPTY},
  80.       {4, 0, 2},
  81.       {4, 1, EMPTY}}, 10, 4, 84},
  82.   /*
  83.     pattern 5: 203   form eye to protect
  84.     021
  85.     */
  86.   {{{0, 0, 2},
  87.       {0, 1, EMPTY},
  88.       {1, 0, EMPTY},
  89.       {1, 1, 2},
  90.       {2, 0, 3},
  91.       {2, 1, 1}}, 6, 8, 82},
  92.   /*
  93.     pattern 6: 202    form eye to protect
  94.     031
  95.     */
  96.   {{{0, 0, 2},
  97.       {0, 1, EMPTY},
  98.       {1, 0, EMPTY},
  99.       {1, 1, 3},
  100.       {2, 0, 2},
  101.       {2, 1, 1}}, 6, 8, 82},
  102.   /*
  103.     pattern 7: 230   connect if invaded
  104.     102
  105.     */
  106.   {{{0, 0, 2},
  107.       {0, 1, 1},
  108.       {1, 0, 3},
  109.       {1, 1, EMPTY},
  110.       {2, 0, EMPTY},
  111.       {2, 1, 2}}, 6, 8, 82},
  112.   /*
  113.     pattern 8: 200000
  114.     00030  extend
  115.     00000
  116.     */
  117.   {{{0, 0, 2},
  118.       {1, 0, EMPTY},
  119.       {2, 0, EMPTY},
  120.       {3, 0, EMPTY},
  121.       {4, 0, EMPTY},
  122.       {5, 0, EMPTY},
  123.       {1, 1, EMPTY},
  124.       {2, 1, EMPTY},
  125.       {3, 1, EMPTY},
  126.       {4, 1, 3},
  127.       {5, 1, EMPTY},
  128.       {1, 2, EMPTY},
  129.       {2, 2, EMPTY},
  130.       {3, 2, EMPTY},
  131.       {4, 2, EMPTY},
  132.       {5, 2, EMPTY}}, 16, 8, 80},
  133.   /*
  134.     pattern 9:  2
  135.     000
  136.     000  extend
  137.     000
  138.     030
  139.     000
  140.     */
  141.   {{{ 0, 0, 2},
  142.       {-1, 1, EMPTY},
  143.       { 0, 1, EMPTY},
  144.       { 1, 1, EMPTY},
  145.       {-1, 2, EMPTY},
  146.       { 0, 2, EMPTY},
  147.       { 1, 2, EMPTY},
  148.       {-1, 3, EMPTY},
  149.       { 0, 3, EMPTY},
  150.       { 1, 3, EMPTY},
  151.       {-1, 4, EMPTY},
  152.       { 0, 4, 3},
  153.       { 1, 4, EMPTY},
  154.       {-1, 5, EMPTY},
  155.       { 0, 5, EMPTY},
  156.       { 1, 5, EMPTY}}, 16, 4, 80},
  157.   /*
  158.     pattern 10: 20000
  159.     0030  extend
  160.     0000
  161.     */
  162.   {{{0, 0, 2},
  163.       {1, 0, EMPTY},
  164.       {2, 0, EMPTY},
  165.       {3, 0, EMPTY},
  166.       {4, 0, EMPTY},
  167.       {1, 1, EMPTY},
  168.       {2, 1, EMPTY},
  169.       {3, 1, 3},
  170.       {4, 1, EMPTY},
  171.       {1, 2, EMPTY},
  172.       {2, 2, EMPTY},
  173.       {3, 2, EMPTY},
  174.       {4, 2, EMPTY}}, 13, 8, 79},
  175.   /*
  176.     pattern 11:    2
  177.     000
  178.     000  extend
  179.     030
  180.     000
  181.     */
  182.   {{{ 0, 0, 2},
  183.       {-1, 1, EMPTY},
  184.       { 0, 1, EMPTY},
  185.       { 1, 1, EMPTY},
  186.       {-1, 2, EMPTY},
  187.       { 0, 2, EMPTY},
  188.       { 1, 2, EMPTY},
  189.       {-1, 3, EMPTY},
  190.       { 0, 3, 3},
  191.       { 1, 3, EMPTY},
  192.       {-1, 4, EMPTY},
  193.       { 0, 4, EMPTY},
  194.       { 1, 4, EMPTY}}, 13, 4, 79},
  195.   /*
  196.     pattern 12: 2000
  197.     030  extend
  198.     000
  199.     */
  200.   {{{0, 0, 2},
  201.       {1, 0, EMPTY},
  202.       {2, 0, EMPTY},
  203.       {3, 0, EMPTY},
  204.       {1, 1, EMPTY},
  205.       {2, 1, 3},
  206.       {3, 1, EMPTY},
  207.       {1, 2, EMPTY},
  208.       {2, 2, EMPTY},
  209.       {3, 2, EMPTY}}, 10, 8, 76},
  210.   /*
  211.     pattern 13:    2
  212.     000  extend
  213.     030
  214.     000
  215.     */
  216.   {{{ 0, 0, 2},
  217.       {-1, 1, EMPTY},
  218.       { 0, 1, EMPTY},
  219.       { 1, 1, EMPTY},
  220.       {-1, 2, EMPTY},
  221.       { 0, 2, 3},
  222.       { 1, 2, EMPTY},
  223.       {-1, 3, EMPTY},
  224.       { 0, 3, EMPTY},
  225.       { 1, 3, EMPTY}}, 10, 4, 76},
  226.   /*
  227.     pattern 14: 643   form eye on the edge
  228.     20
  229.     */
  230.   {{{0, 0, 6},
  231.       {1, 0, 4},
  232.       {1, 1, 2},
  233.       {2, 0, 3},
  234.       {2, 1, EMPTY}}, 5, 8, 80},
  235.   /*
  236.     pattern 15: 646    solidify eye on the edge
  237.     231
  238.     */
  239.   {{{0, 0, 6},
  240.       {1, 0, 4},
  241.       {1, 1, 2},
  242.       {2, 0, 6},
  243.       {2, 1, 3},
  244.       {3, 1, 1}}, 6, 8, 75},
  245.   /*
  246.     pattern 16: 646    solidify eye on the edge
  247.     230
  248.     1
  249.     */
  250.   {{{0, 0, 6},
  251.       {1, 0, 4},
  252.       {1, 1, 2},
  253.       {2, 0, 6},
  254.       {2, 1, 3},
  255.       {2, 2, 1},
  256.       {3, 1, EMPTY}}, 7, 8, 75},
  257.   /*
  258.     pattern 17: 646    solidify eye on the edge
  259.     230
  260.     0
  261.     */
  262.   {{{0, 0, 6},
  263.       {1, 0, 4},
  264.       {1, 1, 2},
  265.       {2, 0, 6},
  266.       {2, 1, 3},
  267.       {2, 2, EMPTY},
  268.       {3, 1, EMPTY}}, 7, 8, 75},
  269.   /*
  270.     pattern 18:    2       form eye on center
  271.     202
  272.     3
  273.     */
  274.   {{{0, 0, 2},
  275.       {-1, 1, 2},
  276.       {0, 1, EMPTY},
  277.       {1, 1, 2},
  278.       {0, 2, 3}}, 5, 4, 80},
  279.   /*
  280.     pattern 19:    2       solidify eye on center
  281.     202
  282.     231
  283.     */
  284.   {{{0, 0, 2},
  285.       {-1, 1, 2},
  286.       {0, 1, EMPTY},
  287.       {1, 1, 2},
  288.       {0, 2, 2},
  289.       {1, 2, 3},
  290.       {2, 2, 1}}, 7, 8, 75},
  291.   /*
  292.     pattern 20:    2       solidify eye on center
  293.     202
  294.     230
  295.     0
  296.     */
  297.   {{{0, 0, 2},
  298.       {-1, 1, 2},
  299.       {0, 1, EMPTY},
  300.       {1, 1, 2},
  301.       {0, 2, 2},
  302.       {1, 2, 3},
  303.       {2, 2, EMPTY},
  304.       {1, 3, EMPTY}}, 8, 8, 75},
  305.   /*
  306.     pattern 21:    2      solidify eye on center
  307.     202
  308.     230
  309.     1
  310.     */
  311.   {{{0, 0, 2},
  312.       {-1, 1, 2},
  313.       {0, 1, EMPTY},
  314.       {1, 1, 2},
  315.       {0, 2, 2},
  316.       {1, 2, 3},
  317.       {2, 2, EMPTY},
  318.       {1, 3, 1}}, 8, 8, 75},
  319.   /*
  320.     pattern 23: 20100     connect if invaded
  321.     00302
  322.     */
  323.   {{{0, 0, 2},
  324.       {0, 1, EMPTY},
  325.       {1, 0, EMPTY},
  326.       {1, 1, EMPTY},
  327.       {2, 0, 1},
  328.       {2, 1, 3},
  329.       {3, 0, EMPTY},
  330.       {3, 1, EMPTY},
  331.       {4, 0, EMPTY},
  332.       {4, 1, 2}}, 10, 8, 84},
  333.   /*
  334.     pattern 24: 2100    connect if invaded
  335.     0302
  336.     */
  337.   {{{0, 0, 2},
  338.       {0, 1, EMPTY},
  339.       {1, 0, 1},
  340.       {1, 1, 3},
  341.       {2, 0, EMPTY},
  342.       {2, 1, EMPTY},
  343.       {3, 0, EMPTY},
  344.       {3, 1, 2}}, 10, 8, 83}
  345. };
  346. /* end patterns */
  347.